#!/bin/bash

# ==============================================================================
# Wasmer RPM 安装与验证脚本
# ==============================================================================

set -e

# 自动查找当前目录下的 wasmer aarch64 RPM 包
RPM_FILE=$(find . -maxdepth 1 -name "wasmer-*.aarch64.rpm" | head -n 1)

if [ -z "${RPM_FILE}" ]; then
    echo "错误: 在当前目录下未找到 wasmer 的 aarch64 RPM 包。"
    echo "请先运行 'build_wasmer_v6.1.0_rpm.sh' 脚本来生成 RPM 文件。"
    exit 1
fi

echo "找到待测试的 Wasmer RPM 包: ${RPM_FILE}"

# 步骤 1: 卸载可能已存在的旧版本
echo "--> 步骤 1: 检查并卸载旧版本的 wasmer..."
if rpm -q wasmer &> /dev/null; then
    echo "发现已安装的 wasmer，正在卸载..."
    sudo dnf remove -y wasmer
fi

# 步骤 2: 安装 RPM 包
echo "--> 步骤 2: 使用 dnf 安装新的 RPM 包..."
sudo dnf install -y "${RPM_FILE}"

# 步骤 3: 验证安装
echo "--> 步骤 3: 验证 wasmer 命令是否成功安装..."
if ! command -v wasmer &> /dev/null; then
    echo "=========================================="
    echo "❌ 测试失败: 安装后在 PATH 中找不到 wasmer 命令。"
    echo "=========================================="
    exit 1
fi

echo "wasmer 命令可执行。"
WASMER_VERSION_OUTPUT=$(wasmer --version)
echo "执行 'wasmer --version' 的输出: ${WASMER_VERSION_OUTPUT}"

# 验证版本输出是否包含 "wasmer" 和我们编译的版本号
if echo "${WASMER_VERSION_OUTPUT}" | grep -q "wasmer 6.1.0"; then
    echo "=========================================="
    echo "✅ 测试成功: Wasmer v6.1.0 已成功安装！"
    echo "=========================================="
else
    echo "=========================================="
    echo "❌ 测试失败: 'wasmer --version' 输出的版本号不匹配。"
    echo "=========================================="
    exit 1
fi

# 步骤 4: 运行一个简单的 WebAssembly 示例来验证其功能
echo "--> 步骤 4: 从 Wasmer 注册表运行一个 'hello world' Wasm 示例..."
# Wasmer 2.0+ 推荐使用 `wasmer run` 来运行 WAPM 包
wasmer run wasmer/hello-world

echo ""
echo "✅ 示例运行成功！整个验证流程完成。"
set +e